package team.nine.kuaichezuche.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import team.nine.kuaichezuche.model.VehicleInstance;

import java.util.List;

/**
 * 车辆实例数据访问接口，用于操作vehicle_instances表
 */
@Repository
public interface VehicleInstanceRepository extends JpaRepository<VehicleInstance, Integer> {

    /**
     * 根据车主ID查询车辆实例
     * @param ownerId 车主ID
     * @return 符合条件的车辆实例列表
     */
    List<VehicleInstance> findByOwnerId(Long ownerId);

    /**
     * 根据车辆信息ID查询车辆实例
     * @param vehicleInfoId 车辆信息ID
     * @return 符合条件的车辆实例列表
     */
    List<VehicleInstance> findByVehicleInfoId(Integer vehicleInfoId);

    /**
     * 根据车牌号查询车辆实例
     * @param licensePlate 车牌号
     * @return 车辆实例对象，如果不存在则返回null
     */
    VehicleInstance findByLicensePlate(String licensePlate);

    /**
     * 根据车辆状态查询车辆实例
     * @param status 车辆状态（0=可租用，1=已租出，2=维护中）
     * @return 符合条件的车辆实例列表
     */
    List<VehicleInstance> findByStatus(Byte status);

    /**
     * 根据车主ID和车辆状态查询车辆实例
     * @param ownerId 车主ID
     * @param status 车辆状态
     * @return 符合条件的车辆实例列表
     */
    List<VehicleInstance> findByOwnerIdAndStatus(Long ownerId, Byte status);
}